compiler design local optimization